package com.zlyx.easy.log.process;

import java.io.IOException;
import java.lang.reflect.Method;
import java.util.List;

import javax.servlet.ServletResponse;

import org.aspectj.lang.ProceedingJoinPoint;

import com.zlyx.easy.core.model.ResultModel;

/**
 * @Auth 赵光
 * @Describle
 * @2019年5月11日
 */
public interface AspectProcess {

	/**
	 * 处理Web层切面事件
	 * 
	 * @param pjp
	 * @param realMethod
	 * @param realClass
	 * @return
	 */
	Object doAround(ProceedingJoinPoint pjp, Class<?> cClass, Method method) throws Exception;

	/**
	 * 处理过滤器异常事件
	 * 
	 * @param response
	 * @param e
	 * @throws IOException
	 */
	default void onErr(ServletResponse response, Throwable e) throws IOException {
		response.getWriter().print(ResultModel.err(e));
	}

	/**
	 * 添加不会被切面的请求路径
	 * 
	 * @param list
	 * @return
	 */
	default List<String> addUrl(List<String> list) {
		list.add("demo");
		return list;
	}
}
